Модуль:Tree
local p = {} local arrData = mw.loadData( 'Module:DataTree' ) local id = "" --Список деревьев--* function p.list(frame) local tp = frame.args1 local data=getitems() local width=50 local root = mw.html.create( 'table' ) :addClass( 'crop' ) :addClass( 'sortable' ) :attr('cellpadding', '0') :attr('cellspacing', '0') local trhead = root:tag('tr') trhead:tag('th'):wikitext('Уровень') trhead:tag('th'):wikitext('Название') trhead:tag('th'):wikitext('Покупка ') trhead:tag('th'):wikitext('Плоды') trhead:tag('th'):wikitext('Продажа 15px') trhead:tag('th'):wikitext('Рост, часы') trhead:tag('th'):wikitext('Доход в час 15px') if tp "all" then trhead:tag('th'):wikitext('Категория') end trhead:tag('th'):wikitext('Локация') trhead:tag('th'):wikitext('Домик агронома') local j=0 for i, v in ipairs(data) do if tp 'all'or v.tp tp then trbody =root:tag('tr') trbody:tag('td') :css('text-align', "center") :css('width', width+2) :wikitext(v.level..''..width..'px|center') trbody:tag('td') :wikitext(''..v.name..'') trbody:tag('td') :css('text-align', 'center') :wikitext(v.buy) trbody:tag('td') :css('text-align', 'center') :wikitext(v.prod) trbody:tag('td') :css('text-align', 'center') :wikitext(v.sell) trbody:tag('td') :css('text-align', 'center') :wikitext(v.tm) trbody:tag('td') :css('text-align', 'center') :wikitext(v.rez) if tp "all" then trbody:tag('td') :wikitext(''..v.tp..'') end trbody:tag('td') :wikitext(v.location) trbody:tag('td') :wikitext(v.agronom) j=j+1 end end local caption = root:tag('caption') :css('text-align', 'left') :wikitext("Всего: "..j) return tostring( root ) end function path() local root = mw.html.create( 'div' ) :css('font-size', '12px') :css('margin-bottom', '10px') :wikitext('[['..arrDataid.tp1..']] / [['..arrDataid.tp..']] / '..id) return tostring( root ) end function infobox() local root = mw.html.create( 'div' ) :addClass('infobox-crop') root:tag('div') :addClass('infobox-crop-h') :wikitext(id) root:tag('div') :attr('id','img-tree') :wikitext('center') local div1=root:tag('div') local item1_1=div1:tag('div') :addClass('item-spacing') :addClass('item-border') item1_1:tag('div') :addClass('item-label') :wikitext('Категория') item1_1:tag('div') :addClass('item-data') :wikitext('[['..arrDataid.tp..']]') local item1_2=div1:tag('div') :addClass('item-spacing') :addClass('item-border') item1_2:tag('div') :addClass('item-label') :wikitext('Продукт') item1_2:tag('div') :addClass('item-data') :wikitext(arrDataid.nameprod and arrDataid.nameprod..' ��' or id) local item1_3=div1:tag('div') :addClass('item-spacing') :addClass('item-border') item1_3:tag('div') :addClass('item-label') :wikitext('Рост, часы') item1_3:tag('div') :addClass('item-data') :wikitext(arrDataid.tm..' ��') local item1_4=div1:tag('div') :addClass('item-spacing') :addClass('item-border') item1_4:tag('div') :addClass('item-label') :wikitext('Локация') item1_4:tag('div') :addClass('item-data') :wikitext(arrDataid.location and '[['..arrDataid.location..']]' or 'Любая') root:tag('div') :addClass('infobox-crop-h-section') :wikitext('Цена') local div2=root:tag('div') local item2_1=div2:tag('div') :addClass('item-spacing') :addClass('item-border') item2_1:tag('div') :addClass('item-label') :wikitext('Покупка') local buy='' if arrDataid.buy~=0 then buy=arrDataid.buy..' 15px' else buy=arrDataid.buyagro and arrDataid.buyagro..' 15px' end item2_1:tag('div') :addClass('item-data') :wikitext(buy) local item2_2=div2:tag('div') :addClass('item-spacing') :addClass('item-border') item2_2:tag('div') :addClass('item-label') :wikitext('Продажа') item2_2:tag('div') :addClass('item-data') :wikitext(arrDataid.sell..' 15px') root:tag('div') :addClass('infobox-crop-h-section') :wikitext('Доход') local div3=root:tag('div') local item3_1=div3:tag('div') :addClass('item-spacing') :addClass('item-border') item3_1:tag('div') :addClass('item-label') :wikitext('Доход в час') local rez='' if arrDataid.tm~=0 and arrDataid.sell~=0 then rez=(math.floor(arrDataid.sell/arrDataid.tm*100)/100)..' 15px' else rez='' end item3_1:tag('div') :addClass('item-data') :wikitext(rez) return tostring(root) end function description() local text='' text=' Описание ' nameprod=arrDataid.nameprod and arrDataid.nameprod or id text=text..' 50px '.. ' Дерево сажается один раз, а урожай с него можно собирать многократно. '.. ' Собрать урожай можно только после того, как он достигнет зрелости (100%). У каждого дерева свое индивидуальное время роста. Наведите курсор мышки на дерево и увидите, сколько времени осталось до сбора урожая. '.. ' Для сбора урожая щелкните мышкой по дереву, крона дерева изменится (станет чуть поменьше размером или опустеет), а плоды дерева автоматически переместятся на склад. '.. ' Собранный урожай можно продать, переработать на фабрике или скормить животным. '.. ' Время созревания плодов составляет �� '..arrDataid.tm..' час., при этом ваш доход в час составляет ' if arrDataid.tm~=0 and arrDataid.sell~=0 then text=text..(math.floor(arrDataid.sell/arrDataid.tm*100)/100) else text=text..'' end text=text..' 15px. '.. ' Покупка ('..id..') Продажа ('..nameprod..') ' text=text..' ' if arrDataid.buy~=0 then text=text..' '..arrDataid.buy..' 15px ' else if pcall(function () if arrDataid.buyagro nil then error() end end) then text=text..' '..arrDataid.buyagro..' 15px ' end end text=text..' '..arrDataid.sell..' 15px ' if arrDataid.tm~=0 and arrDataid.buyagro 0 and arrDataid.sell~=0 then text=text..' Покупка дерева окупится через '..(math.floor(arrDataid.buy/arrDataid.sell*arrDataid.tm/24*100)/100)..' дней, для этого нужно снять '..(math.floor(arrDataid.buy/arrDataid.sell*100)/100)..' урожаев. ' elseif pcall(arrDataid.buyagro) and arrDataid.buyagro>0 then text=text..' Окупаемость дерева вычислить нельзя, т.к. дерево покупается за агробаксы. ' end if arrDataid.exper~=0 then text=text..' После посадки дерева вы получаете '..arrDataid.exper..' . ' end text=text..' Если лерево мешается в том месте, где вы его посадили, его можно передвинуть на другое, более удобное место, или удалить с игрового поля. ' if arrDataid.del~=0 then text=text..' При удалении дерева вы получаете '..arrDataid.del..' 15px. ' end text=text..' Посадить дерево можно в любой зоне: Поле, Промзона, Зона декора. ' return text end function getitems() local data={} local i=1 for key, v in pairs(arrData) do datai={name=v.name, tp=v.tp} datai.level=(v.level 0) and '' or "c "..v.level.." ур. " datai.buy=(v.buy 0) and (v.buyagro 0 and "" or v.buyagro..' 15px') or v.buy datai.tm=(v.tm 0) and '' or v.tm datai.sell=(v.sell 0) and '' or v.sell datai.rez=(v.sell 0) and '' or (math.floor(v.sell/v.tm*100)/100) datai.prod=(v.nameprod '') and v.name or v.nameprod datai.location=v.location and ''..v.location..'' or 'Любые' datai.agronom=v.agronom and 'Домик агронома' or '' i=i+1 end table.sort(data,function( a, b ) return a.name < b.name end ) return data end --Карточка растения (дерево) новая-- function placeBuy() local root = mw.html.create( 'div' ) root:tag('h2'):wikitext('Место покупки растения') root:tag('div'):wikitext(arrDataid.agronom and agronom(id) or 'Саженцы этого дерева продается в Магазине.') return tostring(root) end function location() local root = mw.html.create( 'div' ) root:tag('h2'):wikitext('Локация') root:tag('div'):wikitext(arrDataid.location and 'Можно выращивать только в локации [['..arrDataid.location..']].' or'Можно выращивать в любой локации.') return tostring(root) end function experience() local root = mw.html.create( 'div' ) root:tag('h2'):wikitext('Опыт') root:tag('div'):wikitext('За посадку и сбор урожая 1 единицы растения начисляется опыт, который необходим для перехода к следующему уровню игры.') return tostring(root) end function medal() local root = mw.html.create( 'div' ) root:tag('h2'):wikitext('Медали') root:tag('div'):wikitext('За сбор урожая даются медали. Медали позволяют увеличить количество опыта за сбор 1 единицы растения.') return tostring(root) end function p.getView( frame ) id = frame.args1 return path().. infobox().. description().. placeBuy().. location().. ' Загружается на фабрики '..(require("Module:Factory").fab(nameprod)).. ' Можно скормить животным '..(require("Module:Animal").fab(nameprod)).. experience().. medal().. 'Category:Семена'.. '[[Category:'..arrDataid.tp..']]' end function agronom(id) --Подготовка списка с ценой продажи деревеьев-- local data={} local j for key, v in pairs(arrData) do j=v.nameprod and v.nameprod or v.name dataj={sell=v.sell,name=v.name} end local root = mw.html.create( 'div' ) root:tag('div') :wikitext('Семена этого растения создаются в Домике агронома.') if not pcall(function () if arrDataid.create nil then error() end end) then return tostring(root) end --Исследование семян----------------- root:tag('h3') :wikitext('Исследование семян') root:tag('div') :wikitext('Сначала в Домике агронома проводится исследование, для которого потребуется:') local t=root:tag( 'table' ) :addClass('article-table') :css('min-width', '400px') local name1 = arrDataid.create1.name or "" local name2 = arrDataid.create2.name or "" local name3 = arrDataid.create3.name or "" local t_tr1=t:tag('tr') t_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(dataname1.name and '[['..dataname1.name..'|'..name1..']]' or ''..name1..'') t_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(dataname2.name and '[['..dataname2.name..'|'..name2..']]' or ''..name2..'') t_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(''..name3..'') local t_tr2=t:tag('tr') t_tr2:tag('td') :css('text-align','center') :wikitext(' ') t_tr2:tag('td') :css('text-align','center') :wikitext(' ') t_tr2:tag('td') :css('text-align','center') :wikitext(' ') local t_tr3=t:tag('tr') t_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.create1.c.." шт. x "..dataname1.sell..' 15px = '..dataname1.sell*arrDataid.create1.c..' 15px') t_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.create2.c.." шт. x "..dataname2.sell..' 15px = '..dataname2.sell*arrDataid.create2.c..' 15px') t_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.create3.c.." шт.") root:tag( '' ) :wikitext(' Как видно из таблицы, первые два ингредиента для исследования ([['..data[arrDataid.create1.name].name..']] и [['..data[data[arrDataid.create2.name].name].name..']]) – это плоды деревьев. Найти плоды можно на складе (если, конечно, у вас на ферме посажены такие деревья). '.. ' Третий ингредиент для исследования – ([['..arrDataid.create3.name..']]) – материал. '.. ' Обычно материалы покупаются за агробаксы. Но материалы для исследования в Домике агронома можно также получить бесплатно у друзей. Для этого нажмите синий плюсик 15px в правом верхней углу картинки с материалом, откроется окошко с названием материала: '.. '[[Файл:'..arrDataid.create3.name..'material1.png|200px|center]]'.. ' нажмите в окошке кнопку «Попросить». После этого ваши друзья смогут совершенно бесплатно отправить вам необходимый материал. '.. ' Как только ваши друзья передадут вам достаточное количество материала, вместо синего плюсика в углу вы увидите зеленую галочку 15px. '.. ' Все ингредиенты собраны – можно начинать исследование. Нажмите на зеленую кнопку «Исследовать». '.. ' Время исследования: '..arrDataid.createtm..' час. '.. '200px|center'.. ' Исследование проводится только один раз - чтобы разблокировать создание семян. ') --Создание семян----------------- root:tag('h3') :wikitext('Создание семян') root:tag('div') :wikitext('Когда исследование закончено, можно начинать создавать семена. Для создания 1 единицы семян потребуется:') local t2=root:tag( 'table' ) :addClass('article-table') :css('min-width', '400px') local name1 = arrDataid.agronom1.name or "" local name2 = arrDataid.agronom2.name or "" local name3 = arrDataid.agronom3.name or "" local t2_tr1=t2:tag('tr') t2_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(dataname1.name and '[['..dataname1.name..'|'..name1..']]' or ''..name1..'') t2_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(dataname2.name and '[['..dataname2.name..'|'..name2..']]' or ''..name2..'') t2_tr1:tag('td') :css('min-width','100px') :css('text-align','center') :wikitext(''..name3..'') local t2_tr2=t:tag('tr') t2_tr2:tag('td') :css('text-align','center') :wikitext(' ') t2_tr2:tag('td') :css('text-align','center') :wikitext(' ') t2_tr2:tag('td') :css('text-align','center') :wikitext(' ') local t_tr3=t:tag('tr') t_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.agronom1.c.." шт. x "..dataname1.sell..' 15px = '..dataname1.sell*arrDataid.agronom1.c..' 15px') t_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.agronom2.c.." шт. x "..dataname2.sell..' 15px = '..dataname2.sell*arrDataid.agronom2.c..' 15px') t_tr3:tag('td') :css('text-align','center') :css('color','#267F00') :wikitext(arrDataid.agronom3.c.." шт.") return tostring(root)..require("Module:Gallery").Gallery(id..'agronom',3) end return p